package com.cloudkinto.bo.product;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * @author long
 */
@Data
public class ProductAddBo {
    @ApiModelProperty(value = "分类id")
    private Long categoryId;

    @NotEmpty(message = "sku不可为空")
    private String sku;

    @ApiModelProperty(value = "spu")
    private String spu;

    @ApiModelProperty(value = "JAN码")
    private String janCode;

    @ApiModelProperty(value = "产品名")
    @NotEmpty(message = "产品名不可为空")
    private String productName;

    @ApiModelProperty(value = "产品别名")
    private String productAliasName;

    @ApiModelProperty(value = "产品描述")
    private String productDescription;

    @ApiModelProperty(value = "产品图片")
    private Long picId;

    @ApiModelProperty(value = "审批状态 0草稿 1审核中 2已审核 3已驳回 4废弃")
    @NotNull(message = "审批状态不可为空")
    private Integer approveStatus;


    @ApiModelProperty(value = "是否需要包材")
    private boolean needPack;

    /**
     * ProductPackInfoDto.class
     */
    @ApiModelProperty(value = "包材详情 [{packCode,packName,whId,whCode,whName}]")
    private String packInfo = "[]";

    @ApiModelProperty(value = "原产地简码")
//    @NotEmpty(message = "原产地简码不可为空")
    private String countryOfOrigin;

    @ApiModelProperty(value = "申报价格的货币代码")
//    @NotEmpty(message = "货币代码不可为空")
    private String currencyCode;

    @ApiModelProperty(value = "海关编码")
    private String customhouseCode;

    @ApiModelProperty(value = "所属危险品")
//    @NotNull(message = "危险品不可为空")
    private Integer dangerousCargo;

    @ApiModelProperty(value = "申报中文名")
//    @NotEmpty(message = "申报中文名不可为空")
    private String declareNameCn;

    @ApiModelProperty(value = "申报英文名")
//    @NotEmpty(message = "申报英文名不可为空")
    private String declareNameEn;

    /**
     * 申报价格
     */
    @ApiModelProperty(value = "申报价格")
//    @NotNull(message = "申报价格不可为空")
    private BigDecimal declarePrice;

    /**
     * 产品条码(EAN/UPC)
     */
    @ApiModelProperty(value = "产品条码(EAN/UPC)")
    @NotEmpty(message = "产品条码不可为空")
    private String mainBarcode;

    /**
     * FNSKU
     */
    @ApiModelProperty(value = "FNSKU")
    private String fnSku;

    /**
     * 高 公制
     */
    @NotNull(message = "高不可为空")
    private BigDecimal height;

    /**
     * 高 英制
     */
    @NotNull(message = "高不可为空")
    private BigDecimal heightBs;

    /**
     * 长 公制
     */
    @NotNull(message = "长不可为空")
    private BigDecimal length;

    /**
     * 长 英制
     */
    @NotNull(message = "长不可为空")
    private BigDecimal lengthBs;

    /**
     * 宽 公制
     */
    @NotNull(message = "宽不可为空")
    private BigDecimal width;

    /**
     * 宽 英制
     */
    @NotNull(message = "宽不可为空")
    private BigDecimal widthBs;

    /**
     * 重量 公制
     */
    @NotNull(message = "重量不可为空")
    private BigDecimal weight;

    /**
     * 重量 英制
     */
    @NotNull(message = "重量不可为空")
    private BigDecimal weightBs;

    /**
     * 其他条码多个逗号隔开
     */
    @ApiModelProperty(value = "其他条码多个逗号隔开")
    private String otherBarcode;

    @ApiModelProperty(value = "属性1")
    private String attribute1;

    @ApiModelProperty(value = "属性2")
    private String attribute2;

    @ApiModelProperty(value = "批发价")
    private BigDecimal wholesalePrice;

    @ApiModelProperty(value = "成本价")
    private BigDecimal costPrice;

    @ApiModelProperty(value = "内装数")
    private Integer builtInNumber;

    @ApiModelProperty(value = "ITF条码")
    private String itf;
}
